package org.huangrui.spark.java.core.rdd.operate;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;

import java.util.Arrays;

/**
 * @Author hr
 * @Create 2024-10-17 2:45
 */
public class Spark04_Operate_Transform_FlatMap_1 {
    public static void main(String[] args) {
        SparkConf conf = new SparkConf().setMaster("local[*]").setAppName("spark");
        JavaSparkContext jsc = new JavaSparkContext(conf);
 /*     原数据
        spark hadoop flink
        hive hbase
        flume zookeeper sqoop
*/
        final JavaRDD<String> rdd = jsc.textFile("data/test.txt");

        // TODO map方法只负责转换数据(A -> B[B1, B2, B3])，不能将数据拆分后独立使用
        //      line     => hadoop hive flume
        //      string[] => [hadoop, hive, flume]
        //      flatMap方法可以将数据拆分后独立使用（A -> B1, B2, B3）
        // JavaRDD<String[]> newRdd = rdd.map(line -> line.split(" "));
        JavaRDD<String> flatMap = rdd.flatMap(line -> Arrays.asList(line.split(" ")).iterator());
        flatMap.collect().forEach(System.out::println);

        jsc.close();
    }
}
